#ifndef INIT_ENTERAGEN_CU
#define INIT_ENTERAGEN_CU

#include "../representaciones/enteraGen.cuh"

__global__ void inicializarPoblacionEnteraGenManual(int* poblacion, float* fitnessActualDevice, struct Random randomGPU, int cantCromosomasPoblacion, float * fitnessOrdenadoDevice, unsigned long * numerosAleatoriosInicializacion){
	int posCromosoma = blockIdx.y * cantGenesEnCromosomaDevice * 2;
	int posCromosoma2 = posCromosoma + cantGenesEnCromosomaDevice;
	for(int i=threadIdx.y; i<cantGenesEnCromosomaDevice; i=i+cantHilosBloqueDevice){
		//Obtengo posiciones a escribir.
		int posicionGen = posCromosoma + i;
		int posicionGen2 = posCromosoma2 + i;
		//Genero valor aleatorio.
		poblacion[posicionGen] = obtenerNumeroEnRangoEntera(numerosAleatoriosInicializacion[posicionGen]);
		poblacion[posicionGen2] = obtenerNumeroEnRangoEntera(numerosAleatoriosInicializacion[posicionGen2]);
	}
}

#endif
